
package crm.benedicto.logica;

import crm.benedicto.beans.Permiso;
import crm.benedicto.beans.Usuario;
import crm.benedicto.beans.UsuarioSession;
import crm.benedicto.dao.ConnectionManager;
import crm.benedicto.dao.PermisoDAO;
import crm.benedicto.dao.UsuarioDAO;
import crm.benedicto.excepciones.LogicaException;
import crm.benedicto.excepciones.PersistenException;
import crm.benedicto.views.AccesoModulo;
import java.util.Map;

public class UsuarioLogica {
    
    public UsuarioSession validarUsuario(String nomUsuario, String contrasena) throws PersistenException,LogicaException{                    
        Usuario usuario = null;
        Map<Integer,AccesoModulo> mapPermisos = null;
        UsuarioSession usuarioSession = null;
        ConnectionManager cm = null;
        try{
            if(nomUsuario.equals("") || contrasena.equals("")){
                throw new LogicaException("mensaje general");
            }else{            
                cm=new ConnectionManager();
                UsuarioDAO usuarioDAO = new UsuarioDAO(cm);
                usuario = usuarioDAO.validarUsuario(nomUsuario, contrasena);
                if(usuario != null){
                    PermisoDAO permisoDAO = new PermisoDAO(cm);
                    mapPermisos = permisoDAO.getMapPermisos(usuario.getIdRol());
                    usuarioSession = new UsuarioSession();
                    usuarioSession.setUsuario(usuario);
                    usuarioSession.setMapPermisos(mapPermisos);
                }                                                
                cm.close();
            }
        }catch(LogicaException e){
            throw e;
        }catch(PersistenException e){
            throw e;
        }finally{
            cm.close();
        }
        return usuarioSession;
    }
}
